Поздравляю Хабр и Хаброжителей с Новым 2021 годом и дарю всем нам вот такую незатейливую и приятную Функциональную Ёлку (fЁлка). В этой статье я рассказываю как сделать ёлочку на мониторе за 10 минут. Свою вторую статью я посвящу тому, как «слепить» снеговика, положить подарки под ёлку и всё это припорошить сверху снегом.
Базовая идея
Весь рисунок — это набор математических функций от двух аргументов, x и y. Все они так или иначе базируются на SDF. Для рисования графиков использовался desmos.com.
Базовые функции
Ограничение нуля
Эллипс
Ёлка
Опишем основу ёлки
Добавим ветви
Пригнём кончики ветвей к земле
Ограничим ель сверху
Ель съехала вниз, это исправится позднее
Параллельный ход: ограничение снизу
Ограничитель
Итог данного этапа
Комбинируем
Финальный штрих
Займёмся стволом
Эллипс с более острыми углами
Объединение объектов
Объединение, пересечение и вырезание базируются на простейшей операции min(a, b). В зависимости от знаков перед a и b получаются различные булевы операции.